
package ar.com.arkios.kfconsap.tablas;

import ar.com.arkios.kfconmodelo.modelo.BultoPorEmbalador;
import ar.com.arkios.kfconsap.excepciones.DataTypeInvalidConversionException;
import ar.com.arkios.kfconsap.excepciones.SapGeneralException;
import ar.com.arkios.kfconsap.excepciones.TableNotFoundException;
import com.sap.mw.jco.JCO;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;



    
/**
 *
 * @author Ale
 * @version 1.01
 * 
 * Estructura BultoPorEmbaladorDAO
 */
public class BultoPorEmbaladorDAO extends GenericSAPDAO{
    
    public BultoPorEmbaladorDAO(JCO.Function aFunction) throws DataTypeInvalidConversionException, TableNotFoundException {
        super.setMyTableName("ZBLTXEMBA");
        super.setMyTable(aFunction);        
    }


    /**
     * Datos de los registros devueltos por la estructura:
     * 
     * ZIDCAJA		ZIDCAJA		CHAR	10	Id de caja originado en fqcode
     * CHARG		CHARG_D		CHAR	10	Número de lote
     * COD_EMBALA	ZZCODEMBALA	NUMC6           Codigo embalador
     * LEGAJO		ZLEGAJO		NUMC10          Legajo empleado
     * CATEGORIA	ZCATEGORIA	NUMC3           Categoría empleado
     * NOM_APE		CINAME		CHAR	35	Nombre
     * FECHA		DATUM		DATS	8	Fecha
     * TAMBOR		ZTAMBOR		CHAR	3	tambor que viene de fqcode
     * CANT_BLTS	ERFMG		QUAN	13 3	Cant unidad  medida de entrada
     * ESPECIE		ZZESPECIE	CHAR	4	Especie de frutas     
     * VARIEDAD		ZZVARIEDAD	CHAR	4	Variedad de frutas
     * ENVASE		ZZENVASE	CHAR	6	Envase de frutas.
     * ZPESOENVA	CHAR10		CHAR	10 	Campo de texto, longitud 10
     * EMBALAJE		ZZEMBALAJE	CHAR	8	Condición de embal de la fruta
     * MARCA		ZZMARCAFRU	CHAR	4	Marca de frutas
     * CALIDAD		ZZCALIDAD	CHAR	4	Calidad de la fruta
     * CALIBRE		ZZCALIBRE	CHAR	13	Calibre de fruta
     * AUFNR		AUFNR		CHAR	12	Número de orden
     * 
     */
    
    public void findAll() {
        
    }

    /**
     * Solo para Las Pruebas
     */
    @Override
    public void printAll() {
        System.out.println("ZIDCAJA"+'\t'+"CHARG"+'\t'+"COD_EMBALA"+'\t'+"LEGAJO"+'\t'+"CATEGORIA"+'\t'+"NOM_APE"+'\t'+"FECHA"+'\t'+"TAMBOR"+'\t'+"CANT_BLTS"+'\t'+"ESPECIE"+'\t'+"VARIEDAD"+'\t'+"ENVASE"+'\t'+"ZPESOENVA"+'\t'+"EMBALAJE"+'\t'+"MARCA"+'\t'+"CALIDAD"+'\t'+"CALIBRE"+'\t'+"AUFNR");
        for (int i = 0; i < super.getMyTable().getNumRows(); i++){
            super.getMyTable().setRow(i);            
            System.out.println(super.getMyTable().getString("ZIDCAJA")+
            '\t' + super.getMyTable().getString("CHARG") +
            '\t' + super.getMyTable().getString("COD_EMBALA") +
            '\t' + super.getMyTable().getString("LEGAJO") +
            '\t' + super.getMyTable().getString("CATEGORIA") +
            '\t' + super.getMyTable().getString("NOM_APE") +
            '\t' + super.getMyTable().getString("FECHA") +
            '\t' + super.getMyTable().getString("TAMBOR") +
            '\t' + super.getMyTable().getString("CANT_BLTS") +
            '\t' + super.getMyTable().getString("ESPECIE") +
            '\t' + super.getMyTable().getString("VARIEDAD") +
            '\t' + super.getMyTable().getString("ENVASE") +
            '\t' + super.getMyTable().getString("ZPESOENVA") +
            '\t' + super.getMyTable().getString("EMBALAJE") +
            '\t' + super.getMyTable().getString("MARCA") +
            '\t' + super.getMyTable().getString("CALIDAD") +
            '\t' + super.getMyTable().getString("CALIBRE") +
            '\t' + super.getMyTable().getString("AUFNR") 
            );                
        }   
    }
    
    public void insert(List<BultoPorEmbalador> aList) throws SapGeneralException{               
            Iterator it = aList.iterator();
            BultoPorEmbalador unBultoPorEmbaladorAux;
            while(it.hasNext()){
                unBultoPorEmbaladorAux = (BultoPorEmbalador) it.next();
                try {
                    this.insert(unBultoPorEmbaladorAux);
                } catch (DataTypeInvalidConversionException ex) {
                    Logger.getLogger(BultoPorEmbaladorDAO.class.getName()).log(Level.SEVERE, null, ex);
                    throw new SapGeneralException(ex.getMessage());
                }
            }
    }
    
    public void insert(BultoPorEmbalador unBultoPorEmbalador) throws DataTypeInvalidConversionException{
        
            GregorianCalendar aCalendar = new GregorianCalendar();
            aCalendar.setTime(unBultoPorEmbalador.getMiFecha());            
            super.getMyTable().appendRow();  
            try{
                super.getMyTable().setValue(unBultoPorEmbalador.getMiCajaCod(),"ZIDCAJA");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEmbaladorNum(),"COD_EMBALA");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiLoteNum(),"CHARG");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEmpleadoLegajo(), "LEGAJO");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEmpleadoCategoria(),"CATEGORIA");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEmpleadoNombreyApellido(),"NOM_APE");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiFecha(),"FECHA");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiTambor(),"TAMBOR");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEspecieCod(),"ESPECIE");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiVariedadCod(),"VARIEDAD");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEnvaseCod(),"ENVASE");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiPesoEnvaseCod(),"ZPESOENVA");                     
                super.getMyTable().setValue(unBultoPorEmbalador.getMiEmbalajeCod(), "EMBALAJE");
                super.getMyTable().setValue(unBultoPorEmbalador.getMiMarcaCod(), "MARCA");
                super.getMyTable().setValue(unBultoPorEmbalador.getMiCalidadCod(), "CALIDAD");
                super.getMyTable().setValue(unBultoPorEmbalador.getMiCalibreCod(), "CALIBRE");
                super.getMyTable().setValue(unBultoPorEmbalador.getMiNumeroOrden(), "AUFNR");   
            }catch(JCO.ConversionException ex){
                throw new DataTypeInvalidConversionException(ex.getMessage());
                
            }
 
    }
    public void printAll(List <BultoPorEmbalador> bultosPorEmbalador){
        Iterator it = bultosPorEmbalador.iterator();
        BultoPorEmbalador aBultoPorEmbalador;
        while(it.hasNext()){
            aBultoPorEmbalador= (BultoPorEmbalador)it.next();
            System.out.println("Codigo de Caja: "+aBultoPorEmbalador.getMiCajaCod());
            System.out.println("Calibre Cod: "+aBultoPorEmbalador.getMiCalibreCod());
            System.out.println("Calidad Cod: "+aBultoPorEmbalador.getMiCalidadCod());
            System.out.println("Embalaje Cod: "+aBultoPorEmbalador.getMiEmbalajeCod());
            System.out.println("Apellido y Nombre: "+aBultoPorEmbalador.getMiEmpleadoNombreyApellido());
            System.out.println("Envase: "+aBultoPorEmbalador.getMiEnvaseCod());
            System.out.println("Especie: "+aBultoPorEmbalador.getMiEspecieCod());
            System.out.println("Lote Nro.: "+aBultoPorEmbalador.getMiLoteNum());
            System.out.println("Marca: "+aBultoPorEmbalador.getMiMarcaCod());
            System.out.println("Orden Nro.: "+aBultoPorEmbalador.getMiNumeroOrden());
            System.out.println("Peso Envase Codigo: "+aBultoPorEmbalador.getMiPesoEnvaseCod());
            System.out.println("Tambor: "+aBultoPorEmbalador.getMiTambor());
            System.out.println("Variedad: "+aBultoPorEmbalador.getMiVariedadCod());
            System.out.println("Embalador: "+aBultoPorEmbalador.getMiEmbaladorNum());
            System.out.println("Categoria: "+aBultoPorEmbalador.getMiEmpleadoCategoria());
            System.out.println("Legajo: "+aBultoPorEmbalador.getMiEmpleadoLegajo());
            System.out.println("Fecha: "+aBultoPorEmbalador.getMiFecha().toString());
        }
    
    }
    
}

    
